package reflect;

import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

/**
 * 反射Method
 */
public class ReflectTest08 {
    public static void main(String[] args) throws Exception {
        // 获取类
        Class<?> aClass = Class.forName("service.UserService");
        // 获取所有的Method(包括私有的！)
        Method[] declaredMethods = aClass.getDeclaredMethods();

        for (Method declaredMethod : declaredMethods) {
            // 获取修饰符列表
            System.out.println(Modifier.toString(declaredMethod.getModifiers()));
            // 获取方法的返回值类型
            System.out.println(declaredMethod.getReturnType().getSimpleName());
            // 获取方法名
            System.out.println(declaredMethod.getName());
            // 参数列表(一个方法的参数可能会有多个！)
            Class<?>[] parameterTypes = declaredMethod.getParameterTypes();
            for (Class<?> parameterType : parameterTypes) {
                System.out.println(parameterType.getSimpleName());
            }
        }
    }
}
